package br.gov.mi.corporativo.dominio.rhmi;

// Generated 17/11/2014 09:46:12 by Hibernate Tools 4.0.0

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Immutable;

/**
 * UnidadeEstrutura generated by hbm2java
 */
@Entity @Immutable
@Table(schema = "DES_RHMI", name = "UNIDADE_ESTRUTURA")
public class UnidadeEstrutura implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 4086749703298286499L;
	
	@Id
	@Column(name = "ID_UNIDADE_ESTRUTURA", unique = true, nullable = false, precision = 22, scale = 0)
	private Long idUnidadeEstrutura;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_UNIDADE_ESTRUTURA_ANTERIOR")
	private UnidadeEstrutura unidadeEstruturaAnterior;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_UNIDADE_ESTRUTURA_PAI")
	private UnidadeEstrutura unidadeEstruturaPai;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_TIPO_UNIDADE_ESTRUTURA", nullable = false)
	private TipoUnidadeEstrutura tipoUnidadeEstrutura;
	
	@Column(name = "ID_PESSOA_JURIDICA_UNIDADE", precision = 22, scale = 0)
	private Long idPessoaJuridicaUnidade;
	
	@Column(name = "CD_ORGAO_SIORG", precision = 6, scale = 0)
	private Integer cdOrgaoSiorg;
	
	@Column(name = "CD_ORGAO_SIAFI", length = 6)
	private String cdOrgaoSiafi;
	
	@Column(name = "NM_UNIDADE_ESTRUTURA", nullable = false, length = 100)
	private String nmUnidadeEstrutura;
	
	@Column(name = "SG_UNIDADE_ESTRUTURA", nullable = false, length = 8)
	private String sgUnidadeEstrutura;
	
	@Column(name = "DS_UNIDADE_ESTRUTURA", length = 2000)
	private String dsUnidadeEstrutura;
	
	@Column(name = "ST_ESTRUTURA_MI", nullable = false, length = 1)
	private String stEstruturaMi;
	
	@Column(name = "CD_ORGAO_PODER", length = 1)
	private Character cdOrgaoPoder;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_INICIO_VIGENCIA", nullable = false, length = 7)
	private Date dtInicioVigencia;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_TERMINO_VIGENCIA", length = 7)
	private Date dtTerminoVigencia;
	
	@Column(name = "DS_EMAIL", length = 200)
	private String dsEmail;
	
	@Column(name = "CD_UASG", precision = 6, scale = 0)
	private Integer cdUasg;
	
	@Column(name = "CD_GESTAO", precision = 5, scale = 0)
	private Integer cdGestao;
	
	@Column(name = "ST_REGISTRO", nullable = false, length = 1)
	private String stRegistro;

	public UnidadeEstrutura() {
	}

	public UnidadeEstrutura(Long idUnidadeEstrutura,
			TipoUnidadeEstrutura tipoUnidadeEstrutura,
			String nmUnidadeEstrutura, String sgUnidadeEstrutura,
			String stEstruturaMi, Date dtInicioVigencia, String stRegistro) {
		this.idUnidadeEstrutura = idUnidadeEstrutura;
		this.tipoUnidadeEstrutura = tipoUnidadeEstrutura;
		this.nmUnidadeEstrutura = nmUnidadeEstrutura;
		this.sgUnidadeEstrutura = sgUnidadeEstrutura;
		this.stEstruturaMi = stEstruturaMi;
		this.dtInicioVigencia = dtInicioVigencia;
		this.stRegistro = stRegistro;
	}

	public UnidadeEstrutura(
			Long idUnidadeEstrutura,
			UnidadeEstrutura unidadeEstruturaByIdUnidadeEstruturaAnterior,
			UnidadeEstrutura unidadeEstruturaByIdUnidadeEstruturaPai,
			TipoUnidadeEstrutura tipoUnidadeEstrutura,
			Long idPessoaJuridicaUnidade,
			Integer cdOrgaoSiorg,
			String cdOrgaoSiafi,
			String nmUnidadeEstrutura,
			String sgUnidadeEstrutura,
			String dsUnidadeEstrutura,
			String stEstruturaMi,
			Character cdOrgaoPoder,
			Date dtInicioVigencia,
			Date dtTerminoVigencia,
			String dsEmail,
			Integer cdUasg,
			Integer cdGestao,
			String stRegistro) {
		this.idUnidadeEstrutura = idUnidadeEstrutura;
		this.unidadeEstruturaAnterior = unidadeEstruturaByIdUnidadeEstruturaAnterior;
		this.unidadeEstruturaPai = unidadeEstruturaByIdUnidadeEstruturaPai;
		this.tipoUnidadeEstrutura = tipoUnidadeEstrutura;
		this.idPessoaJuridicaUnidade = idPessoaJuridicaUnidade;
		this.cdOrgaoSiorg = cdOrgaoSiorg;
		this.cdOrgaoSiafi = cdOrgaoSiafi;
		this.nmUnidadeEstrutura = nmUnidadeEstrutura;
		this.sgUnidadeEstrutura = sgUnidadeEstrutura;
		this.dsUnidadeEstrutura = dsUnidadeEstrutura;
		this.stEstruturaMi = stEstruturaMi;
		this.cdOrgaoPoder = cdOrgaoPoder;
		this.dtInicioVigencia = dtInicioVigencia;
		this.dtTerminoVigencia = dtTerminoVigencia;
		this.dsEmail = dsEmail;
		this.cdUasg = cdUasg;
		this.cdGestao = cdGestao;
		this.stRegistro = stRegistro;
	}

	
	public Long getIdUnidadeEstrutura() {
		return this.idUnidadeEstrutura;
	}

	
	public UnidadeEstrutura getUnidadeEstruturaAnterior() {
		return this.unidadeEstruturaAnterior;
	}

	
	public UnidadeEstrutura getUnidadeEstruturaPai() {
		return this.unidadeEstruturaPai;
	}

	
	public TipoUnidadeEstrutura getTipoUnidadeEstrutura() {
		return this.tipoUnidadeEstrutura;
	}

	
	public Long getIdPessoaJuridicaUnidade() {
		return this.idPessoaJuridicaUnidade;
	}

	
	public Integer getCdOrgaoSiorg() {
		return this.cdOrgaoSiorg;
	}

	
	public String getCdOrgaoSiafi() {
		return this.cdOrgaoSiafi;
	}

	
	public String getNmUnidadeEstrutura() {
		return this.nmUnidadeEstrutura;
	}

	
	public String getSgUnidadeEstrutura() {
		return this.sgUnidadeEstrutura;
	}

	
	public String getDsUnidadeEstrutura() {
		return this.dsUnidadeEstrutura;
	}

	
	public String getStEstruturaMi() {
		return this.stEstruturaMi;
	}

	
	public Character getCdOrgaoPoder() {
		return this.cdOrgaoPoder;
	}

	
	public Date getDtInicioVigencia() {
		return this.dtInicioVigencia;
	}

	
	public Date getDtTerminoVigencia() {
		return this.dtTerminoVigencia;
	}

	
	public String getDsEmail() {
		return this.dsEmail;
	}

	
	public Integer getCdUasg() {
		return this.cdUasg;
	}

	
	public Integer getCdGestao() {
		return this.cdGestao;
	}

	
	public String getStRegistro() {
		return this.stRegistro;
	}

}
